# @Time : 2020/6/25 14:03
# @Author : Fioman 
# @Phone : 13149920693

"""
集合的本质是一堆唯一对象的聚集.因此,集合可以用来去重.
"""
import random

L = ['spam', 'spam', 'eggs', 'spam']
s = set(L)
print(" L = {},s = {}".format(L, s))
L_new = list(s)
print("L_new = {}".format(L_new))
"""
集合中的元素必须是可散列的,set类型本身是不可散列的,但是frozenset可以.因此可以创建一个包含不同fronzenset的set.
除了保证唯一性,集合还实现了很多基础的中缀运算符.给定两个集合a和b,a|b返回的是它们的集合,a&b得到是交集,而a-b得到的是差集.
看两个集合中有多少同名的元素
"""
needles = set([random.randint(x, 10) for x in range(10)])
haystack = set([random.randint(x, 10) for x in range(10)])

found = needles & haystack
print("needles = {}".format(needles))
print("haystack = {}".format(haystack))
print("found = {}".format(found))

# 如果不使用交集的话,就变成了另外一种循环操作
found = set()
for n in needles:
    if n in haystack:
        found.add(n)
print("found = {}".format(found))
# 在python中,除了空集,集合的字符串表示形式总是以{...}的形式出现.
s1 = {1}
s2 = set()
print(type(s1),type(s2))
d = {}  # 这是要给字典,不是集合
print(type(d))
print("s1.pop() = {}".format(s1.pop()))
print("s1 = {}".format(s1)) # 空集合 = set()

























